#ifndef WIDGET_H
#define WIDGET_H

#include <QEnterEvent>
#include <QPainter>
#include <QTimer>
#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    void initCanvas(QPainter &painter); // 初始化画布
    void drawMiddleCircle(QPainter &painter, int radius); // 画中心的小圆
    void drawScaleLine(QPainter &painter, int radius); // 画刻度线
    void drawScaleValue(QPainter &painter, int radius); // 画刻度值
    void drawPoint(QPainter &painter, int radius); // 画指针
    void drawSpeedSector(QPainter &painter, int radius); // 画扇形
    void drawInnerEllipse(QPainter &painter, int radius); // 画渐变内圆
    void drawInnerEllipseBlack(QPainter &painter, int radius); // 画黑色内圈
    void drawCurrentSpeed(QPainter &painter); // 绘制当前数值
    void drawEllipseOutSkirts(QPainter &painter, int radius); // 画外壳，发光外圈
    void drawLogo(QPainter &painter, int radius); // 画LOGO

protected:
    void paintEvent(QPaintEvent *event);  // 重写绘制事件
private:
    Ui::Widget *ui;
    double angle;
    double startAngle = 150;
    int currentValue = 0;
    QTimer *timer;
};
#endif // WIDGET_H
